package com.proyemp.entity.classes;

import java.io.Serializable;
import java.util.Date;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;


/**
 * The persistent class for the emails database table.
 * 
 */
@Entity
@Table(name="emails")
public class Email implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private String email;

    @Temporal( TemporalType.DATE)
	@Column(name="fecha_actualizacion")
	private Date fechaActualizacion;

	@Column(name="usuario_modificacion")
	private String usuarioModificacion;

	//bi-directional many-to-one association to TiposEmail
    @ManyToOne
	@JoinColumn(name="id_tipo_email")
	private TiposEmail tiposEmail;

	//bi-directional many-to-many association to Contacto
    @ManyToMany
	@JoinTable(
		name="emails_contactos"
		, joinColumns={
			@JoinColumn(name="email")
			}
		, inverseJoinColumns={
			@JoinColumn(name="id_contacto")
			}
		)
	private Set<Contacto> contactos;

	//bi-directional many-to-many association to Empleado
    @ManyToMany
	@JoinTable(
		name="emails_empleados"
		, joinColumns={
			@JoinColumn(name="email")
			}
		, inverseJoinColumns={
			@JoinColumn(name="numero_empleado")
			}
		)
	private Set<Empleado> empleados;

	//bi-directional many-to-one association to EmailsUsuariosFinale
	@OneToMany(mappedBy="emailBean")
	private Set<EmailsUsuariosFinale> emailsUsuariosFinales;

    public Email() {
    }

	public String getEmail() {
		return this.email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public Date getFechaActualizacion() {
		return this.fechaActualizacion;
	}

	public void setFechaActualizacion(Date fechaActualizacion) {
		this.fechaActualizacion = fechaActualizacion;
	}

	public String getUsuarioModificacion() {
		return this.usuarioModificacion;
	}

	public void setUsuarioModificacion(String usuarioModificacion) {
		this.usuarioModificacion = usuarioModificacion;
	}

	public TiposEmail getTiposEmail() {
		return this.tiposEmail;
	}

	public void setTiposEmail(TiposEmail tiposEmail) {
		this.tiposEmail = tiposEmail;
	}
	
	public Set<Contacto> getContactos() {
		return this.contactos;
	}

	public void setContactos(Set<Contacto> contactos) {
		this.contactos = contactos;
	}
	
	public Set<Empleado> getEmpleados() {
		return this.empleados;
	}

	public void setEmpleados(Set<Empleado> empleados) {
		this.empleados = empleados;
	}
	
	public Set<EmailsUsuariosFinale> getEmailsUsuariosFinales() {
		return this.emailsUsuariosFinales;
	}

	public void setEmailsUsuariosFinales(Set<EmailsUsuariosFinale> emailsUsuariosFinales) {
		this.emailsUsuariosFinales = emailsUsuariosFinales;
	}
	
}